1. Field of the Invention
The present invention relates to a communication system for communicating a plurality of time-division multiplexed data, and a control method therefor.
2. Description of the Relates Art
In general, a multimedia communication system uses a method of transmitting real-time data in a PBX (private branch exchange) that combines voice data and the like, and non-real-time data that permit a delay to some extent in a LAN (local area network by, e.g., time-division multiplexing. Recently, a system that transmits data by dynamically assigning time slots using a statistical multiplexing effect has come into existence.
The time-division multiplexing method will be explained below.
FIG. 26 shows the arrangement upon multiplexing telephone data and data communication data using a 4-msec frame as a fundamental frame on a 64-kbps transmission path. The multiplexing includes a method of permanently assigning time slots to the individual media, and a method of dynamically and variably assigning time slots.
These two methods will be explained below with reference to FIG. 26. Assume that two telephone data and one data communication data are to be multiplexed. In this case, the 4-msec frame in the 64-kbps path corresponds to a 32-byte length. Numerical values in parentheses in FIG. 26 respectively indicate time slots assigned to the individual communications.
In the permanent assignment method, the individual media data occupy the entire multiplexed datastream. More specifically, for example, if there is no second telephone channel data (not busy), empty data is set in that period to make communications ((1) of FIG. 26).
In contrast to this, in the dynamic time slot assignment method, if there is no second telephone channel data, a message indicating that transmission of a communication frame having no second channel data is supplied in advance to the other end-system or other host, and thereafter, that time slot is assigned to the data communication, thus saving the total length of the multiplexed datastream ((2) of FIG. 26).
In another method, the entire multiplexed line length remains the same, and the time slot of the data communication is increased accordingly ((3) of FIG. 26).
In this case as well, when the contents of the format of the communication frame change, a message indicating the change in contents of the format of the communication frame is supplied in advance to the other end-system, and thereafter, the changed communication frame is transmitted.
However, in the permanent time slot assignment method in TDM used in the conventional multimedia communication system, since each transmission time slot to be used is assured even in an inactive state, the transmission time slot cannot be used by other media even when the time slot is not in use in practice. Also, since data transfer is done by one-to-one communications, data transfer cannot be done by simultaneously connecting multipoints.
In the system that transmits data by dynamically assigning time slots using the statistical multiplexing effect, since the data multiplexing method is the unique one, data transfer is done by one-to-one communications, but cannot be done by simultaneously connecting multipoints, as in the former TDM method. In addition, this system cannot be connected to a public network.
Furthermore, since private networks such as LANs are to be connected using services such as a dedicated channel network, frame relay network, and the like, voice communications cannot be simultaneously made.
In the method of dynamically assigning time slots, when the communication frame format is dynamically changed, a message that indicates the change in format of the communication frame must be supplied to the other end-system before transmission of the communication frame whose format has changed.
After this message is supplied, the communication frame whose format has changed is transmitted.
Communications that include IP packet communications using an Internet protocol as data communications, which are transfer-controlled by a TCP (Transmission Control Protocol) will be examined below. The TCP operation will be explained below.
In the TCP, handshake is attained by the sequence number, acknowledgement number, and control bits, and the transmission interval and volume of transfer data are controlled by the window size and retransmission timeout time.
FIG. 29 shows the format of a TCP header.
In FIG. 29, xe2x80x9cSource Portxe2x80x9d indicates a port number of a source, and xe2x80x9cDestination Portxe2x80x9d indicates the port number of a destination. xe2x80x9cSequence Numberxe2x80x9d is a number that indicates the head of data to be transmitted, and xe2x80x9cAcknowledgement Numberxe2x80x9d is the number of data next to the received data. xe2x80x9cData Offsetxe2x80x9d indicates the head of the data area in the header.
As the control bits, xe2x80x9cURGxe2x80x9d is a bit indicating the validity of an urgent pointer, and xe2x80x9cACKxe2x80x9d is a bit indicating the validity of the acknowledgement number. xe2x80x9cPSHxe2x80x9d is a bit for instructing transfer of data to the application layer, and xe2x80x9cRSTxe2x80x9d is a bit for forcibly terminating connection. xe2x80x9cSYNxe2x80x9d is a control bit for sequence number synchronization, and xe2x80x9cFINxe2x80x9d is a bit for terminating connection.
xe2x80x9cWindowxe2x80x9d indicates the data volume that can be transmitted without any acknowledgement. xe2x80x9cChecksumxe2x80x9d is the checksum of the header and data, and xe2x80x9cUrgent Pointerxe2x80x9d is a pointer indicating the end of data requiring real-time processing.
xe2x80x9cOptionsxe2x80x9d indicates the maximum segment length, and xe2x80x9cPaddingxe2x80x9d is data (padding) to be set so that data can start from a 32-bit boundary. xe2x80x9cdataxe2x80x9d is the data to be actually transferred.
A typical procedure for establishing a connection will be described below with reference to FIGS. 27 and 28.
For example, when communication terminals A 2701 and B 2702 make communications based on an FTP (File Transfer Protocol), these communication terminals execute the following processing.
(a) An FTP process of communication terminal A 2701 issues a connection establishment request to communication terminal B2702 to a TCP module.
(b) The TCP module of communication terminal A 2701 handshakes with a TCP module of communication terminal B 2702 to request connection establishment.
(c) The TCP module of communication terminal B 2702 sends back a response to the connection establishment request.
(d) Process A 2707 sets data to be transferred by the TCP in a buffer 2703.
(e) Subsequently, process A 2707 issues a data transmission request to TCP module A 2705.
(f) TCP module A 2705 fetches the data in the buffer in units of TCP transmission segments.
(g) Furthermore, TCP module A 2705 adds a header set with control bits and the like to the data, and sends it to the TCP module of communication terminal B 2702.
(h) The TCP module of the communication terminal B 2702 sends back a response indicating data reception.
(i) At the same time, TCP module B 2706 stores the response in a communication buffer 2704.
(j) TCP module B 2706 informs process B 2708 of data reception.
(k) Process B 2708 receives that data as FTP data. The operations of the two TCP modules from (b) to (g) will be described in more detail below.
(1) The TCP module of the transmitter is in the inactive state (CLOSED), and the TCP module of the receiver is in a receivable state (LISTEN) of communication data from another terminal.
(2) TCP module A that received the connection establishment request from process A sends a TCP segment set with an appropriate sequence number (100) and SYN of the control bits to TCP module B (b).
(3) TCP module B sends back a response to that segment using appropriate SEQ (sequence number)=300. At this time, ACK (acknowledgement number) is incremented by one from the received number, and SYN and ACK are set as the control bits (c).
(4) TCP module A sends back a response to that ACK with SEQ=101 and ACK=301, which is incremented by one from the received number.
In this manner, synchronization (SYN) of SEQ is established between TCP modules A and B. Thereafter, TCP modules A and B make communications respectively with SEQ=101 and 301.
The window size and retransmission timeout time will be explained below with reference to FIG. 30. In the TCP control method, the transmitter basically transmits the next data after it receives ACK. However, the receiver can show the data volume that can be transmitted without any ACK, using a xe2x80x9cWindowxe2x80x9d portion in the header format.
The upper portion of FIG. 30 shows this state. Assume that communication terminal B as the receiver has been notified of the window size=30 (bytes) in previous communications. Communication terminal A as the transmitter sends a segment including 4-byte data contents (a TCP communication unit) with SEQ=101. Subsequently, terminal A can send a segment including 8-byte data contents with SEQ=105 and a segment including 7-byte data contents with SEQ=113 before receiving ACK from the receiver (the transmitter can send data up to 30 bytes while expecting ACK from the receiver).
The transmitter starts a timer in correspondence with the SEQ number upon sending each segment. The transmitter stops that timer when it receives ACK (the actual numerical value is SEQ number+data length) corresponding to that SEQ number. If the timer has elapsed (has reached timeout) before receiving ACK, the transmitter resends the corresponding segment.
As can be understood from the above-mentioned operation principle, when a short retransmission timeout time is set (when the performance of the transmission path/receiver is overestimated), the number of times of retransmission increases, resulting in a large traffic. On the other hand, when a long retransmission timeout time is set (when the performance of the transmission path/receiver is underestimated), retransmission of data is delayed when retransmission is required in fact.
As a method of determining the timeout time, RFC793 (Internet Engineering Task Force) describes the following example.
An Example Retransmission Timeout Procedure
Measure the elapsed time between sending a data octet with a particular sequence number and receiving an acknowledgement that covers that sequence number (segments sent do not have to match segments received). This measured elapsed time is the Round Trip Time (RTT). Next compute a Smoothed Round Trip Time (SRTT) as:
SRTT=(ALPHA*SRTT)+((1xe2x88x92ALPHA)*RTT)
and based on this, compute the retransmission timeout (RTO) as:
RTO=min[UBOUND, max[L BOUND, (BETA*SRTT)]]
where UBOUND is an upper bound on the timeout (e.g., 1 minute). LBOUND is a lower bound on the timeout (e.g., 1 second). ALPHA is a smoothing factor (e.g., 0.8 to 0.9), and BETA is a delay variance factor (e.g., 1.3 to 2.0).
Note that RTT (Round Trip Time) is the actually measured value from transmission until ACK reception. As can be seen from the above computation contents, the timeout time value is determined by SRTT based on actual RTT and factor BETA. That is, the TCP module cannot determine whether xe2x80x9cRTT has changed contingentlyxe2x80x9d/xe2x80x9cRTT is going to stay stable for a whilexe2x80x9d.
This is a general determination method. That is, even when one or more incoming lines go inactive, and the entire length for IP packet communications has clearly improved like communications on the channel based on the multiplexing method that can vary time slots to the individual media, the timeout time is set based on RTT alone regardless of such improvement. For this reason, much time is required until a suitable timeout time is set, or a relatively long timeout time is set.
It is an object of the present invention to provide a multimedia communication system and multimedia communication method, which can attain multipoint connections at the same time, and can transmit real-time data while maintaining its real-time characteristics simultaneously with transmission of non-real-time data.
It is another object of the present invention to set the timeout time used for determining retransmission at an appropriate value on the basis of the time slot assignment in a multiplexing communication method that dynamically assigns time slots.
It is still another object of the present invention to transmit a communication frame whose format has changed without informing the other end-system of the change in format of the communication frame in a multiplexing communication method that dynamically assigns time slots.
Other features and advantages of the present invention will be apparent from the following description taken in conjunction with the accompanying drawings, in which like reference characters designate the same or similar parts throughout the figures thereof.